import axios from 'axios'
import qs from 'qs'

// axios 配置
axios.defaults.timeout = 30000
axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded;charset=UTF-8'
axios.defaults.baseURL = '/'

// 拦截器
axios.interceptors.request.use((config) => {
  // 在发送请求之前做某件事
  if (config.method === 'post') {
    config.data = qs.stringify(config.data)
  }
  return config
}, (error) => {
  return Promise.reject(error)
})

// 请求树
const _tree = {
  // 数据概览
  'chart/echarts': {
    'name': '数据概览',
    'allowed': [
      'chart/*'
    ]
  },
  // 用户列表
  'user/index': {
    'name': '用户列表',
    'allowed': [
      'user/index', 'user/setUserStatus'
    ]
  },
  // 工人列表
  'worker/index': {
    'name': '工人列表',
    'allowed': [
      'adminer/workerList', 'adminer/deleteWorker', 'adminer/setWorkerInfo'
    ]
  },
  // 用户地址
  'user/address': {
    'name': '用户地址',
    'allowed': [
      'user/address'
    ]
  },
  // 支付日志
  'order/index': {
    'name': '支付日志',
    'allowed': [
      'order/index'
    ]
  },
  // 购地订单
  'fieldOrder/index': {
    'name': '购地订单',
    'allowed': [
      'order/getFieldOrder'
    ]
  },
  // 商品订单
  'goodsOrder/index': {
    'name': '商品订单',
    'allowed': [
      'order/goodsOrder'
    ]
  },
  // 门票订单
  'order/ticketBuy': {
    'name': '门票订单',
    'allowed': [
      'order/ticketBuy'
    ]
  },
  // 用户反馈
  'user/feedback': {
    'name': '用户反馈',
    'allowed': [
      'user/feedBack', 'user/feedBackComment'
    ]
  },
  // banner管理列表
  'banner/index': {
    'name': 'banner管理列表',
    'allowed': [
      'advert/banner', 'advert/setBanner'
    ]
  },
  // 首页活动
  'downLine/index': {
    'name': '首页活动',
    'allowed': [
      'advert/indexactive', 'advert/setindexactive'
    ]
  },
  // 发布消息
  'notice/index': {
    'name': '发布消息',
    'allowed': [
      'advert/notice'
    ]
  },
  // 攻略列表
  'strategy/index': {
    'name': '攻略列表',
    'allowed': [
      'strategy/index', 'strategy/delete', 'strategy/editList','strategy/changeTop','strategy/edit','strategy/add'
    ]
  },
  // 种子列表
  'plant/index': {
    'name': '种子列表',
    'allowed': [
      'plant/index', 'plant/delete', 'plant/editPlantSort','plant/editPlantList','plant/setPlant'
    ]
  },
  // 批量修改菜品价格
  'plant/batchModifyPrice': {
    'name': '批量修改菜品价格',
    'allowed': [
      'field/getAllPlantName', 'field/getSinglePlantInfo', 'plant/batchModifyPrice'
    ]
  },
  // 新闻资讯
  'news/index': {
    'name': '新闻资讯',
    'allowed': [
      'news/index', 'news/delete', 'news/editList','news/changeTop','news/edit','news/add'
    ]
  },
  // 商品服务
  'goods/index': {
    'name': '商品服务',
    'allowed': [
      'goods/index', 'goods/delete', 'goods/editGoodsSort', 'goods/editGoodsList', 'goods/tag', 'goods/setGoods'
    ]
  },
  // 虚拟卡管理
  'cards/index': {
    'name': '虚拟卡管理',
    'allowed': [
      'cards/*'
    ]
  },
  // 虚拟卡订单
  'cardsOrder/index': {
    'name': '虚拟卡订单',
    'allowed': [
      'order/cardsOrder'
    ]
  },
  // 针对虚拟卡用户最新修改的收获地址
  'cardsAddress/index': {
    'name': '虚拟卡地址',
    'allowed': [
      'order/cardsAddress'
    ]
  },
  // 品类管理
  'goodsCate/index': {
    'name': '商品品类',
    'allowed': [
      'goods/tag', 'goods/deleteCate', 'goods/setCate'
    ]
  },
  // 用户日常
  'daily/index': {
    'name': '用户日常',
    'allowed': [
      'task/userdaytask'
    ]
  },
  // 土地管理
  'map/index': {
    'name': '土地管理',
    'allowed': [
      'map/index', 'field/getAreaName'
    ]
  },
  // 菜品管理
  'field/index': {
    'name': '菜品管理',
    'allowed': [
      'field/index', 'field/getSinglePlantInfo', 'field/plantParam', 'field/editCdTime', 'field/getAllPlantName', 'field/getAreaName'
    ]
  },
  // 新增菜品
  'field/addField': {
    'name': '新增菜品',
    'allowed': [
      'field/setField'
    ]
  },
  // 编辑菜品
  'field/editField': {
    'name': '编辑菜品',
    'allowed': [
      'field/setField'
    ]
  },
  // 预种植系统
  'readyPlant/index': {
    'name': '预种植系统',
    'allowed': [
      'field/getAreaName', 'field/getReadyPlantMapList', 'field/getAllPlantName', 'field/getSingleAreaName', 'field/checkReadyPlantStatus', 'field/setReadyField'
    ]
  },
  // 一键同步
  'readyPlant/sync': {
    'name': '一键同步',
    'allowed': [
      'field/onekeySync'
    ]
  },
  // 确认审核
  'readyPlant/check': {
    'name': '确认审核',
    'allowed': [
      'field/checkReadyPlantStatus'
    ]
  },
  // 种植记录
  'plantLog/index': {
    'name': '种植记录',
    'allowed': [
      'field/plantLog'
    ]
  },
  // 任务分配
  'task/index': {
    'name': '任务分配',
    'allowed': [
      'task/index', 'task/workerUndoTask', 'task/reDispatchWorkerTask', 'task/dispatchWorkerTask'
    ]
  },
  // 每日一拍
  'dayphoto/index': {
    'name': '每日一拍',
    'allowed': [
      'map/dayphoto', 'map/unPhoto', 'map/getWorkerManageArea', 'map/_getWorkerManageArea', 'map/setWorkerManageArea'
    ]
  },
  'collect/index': {
    'name': '收菜管理',
    'allowed': [
      'task/collectManageList', 'task/updateActiveYield'
    ]
  },
  // 购买记录
  'buyer/index': {
    'name': '购买记录',
    'allowed': [
      'user/buyer', 'user/editUserBuyAddress'
    ]
  },
  // erp系统
  'erp/index': {
    'name': 'erp系统',
    'allowed': [
      'erp/*', 'field/getAreaName', 'field/getSingleAreaName'
    ]
  },
  // 优惠卷
  'coupons/index': {
    'name': '优惠卷',
    'allowed': [
      'coupons/index', 'coupons/set', 'coupons/adminSendLog', 'coupons/send'
    ]
  },
  // 添加优惠卷
  'coupons/add': {
    'name': '添加优惠卷',
    'allowed': [
      'coupons/create'
    ]
  },
  // 激活码
  'cdKey/index': {
    'name': '激活码',
    'allowed': [
      'coupons/keyList', 'coupons/deleteCdKey', 'coupons/addCdKey'
    ]
  },
  // 优惠卷包
  'coupons/couponsPkg': {
    'name': '优惠卷包',
    'allowed': [
      'coupons/pkgList', 'coupons/deleteCouponsPkg', 'coupons/setSharePkg', 'coupons/addCouponsPkg'
    ]
  },
  // 用户圈圈
  'userMoment/index': {
    'name': '用户圈圈',
    'allowed': [
      'moment/index', 'moment/deleteMoment', 'moment/listComment', 'user/setUserStatus', 'moment/setHide'
    ]
  },
  // 圈圈评论
  'momentComment/index': {
    'name': '圈圈评论',
    'allowed': [
      'moment/comment', 'moment/delete', 'user/setUserStatus'
    ]
  },
  // 门票顶部信息
  'ticket/index': {
    'name': '门票顶部信息',
    'allowed': [
      'ticket/index', 'ticket/setTicketBanner'
    ]
  },
  // 门票列表
  'ticket/ticket': {
    'name': '门票列表',
    'allowed': [
      'ticket/list', 'ticket/editInfo', 'ticket/delete', 'ticket/setTicket'
    ]
  },
  // 门票数量
  'ticket/limit': {
    'name': '门票数量',
    'allowed': [
      'ticket/limit', 'ticket/setdayNum'
    ]
  },
  // 查看管理员
  'adminer/index': {
    'name': '查看管理员',
    'allowed': [
      'adminer/index'
    ]
  },
  // 添加管理员
  'adminer/add': {
    'name': '添加管理员',
    'allowed': [
      'adminer/add'
    ]
  },
  // 编辑管理员
  'adminer/edit': {
    'name': '编辑管理员',
    'allowed': [
      'adminer/edit'
    ]
  },
  // 删除管理员
  'adminer/delete': {
    'name': '删除管理员',
    'allowed': [
      'adminer/delete'
    ]
  },
  // 编辑管理员权限
  'adminer/editPurview': {
    'name': '编辑管理员权限',
    'allowed': [
      'adminer/edit'
    ]
  },
  // 下载
  'download/index': {
    'name': '下载',
    'allowed': [
      'download/*'
    ]
  },
  // 关闭摄像
  'camera/index': {
    'name': '关闭摄像',
    'allowed': [
      'tools/closeDArea', 'tools/ediCloseArea'
    ]
  },
  // 秒杀工具
  'miaosha/index': {
    'name': '秒杀工具',
    'allowed': [
      'field/getAllPlantName', 'field/getSinglePlantInfo', 'tools/getMiaoShaInfo', 'tools/setMiaoSha'
    ]
  },
  // 首单活动
  'firstOrder/index': {
    'name': '首单活动',
    'allowed': [
      'tools/getPlantName', 'tools/setActiveStatus'
    ]
  }
}

// 登录
export const login = params => {
  // return axios.post('index.php?c=index&a=login', params).then(res => res.data)
}
// 是否登录
export const isLogin = () => {
  // return axios.get('index.php?c=index&a=isLogin').then(res => res.data)
  return axios.get('index.php/home').then(res => res.data)
}
export const loginout = () => {
  // return axios.get('index.php?c=index&a=loginout').then(res => res.data)
}

// 输出请求
export const apiTree = (path_name, action_name, params = {}, _request_mothod = 'GET') => {

  let _url = '';
  let _ca = action_name.split('/');
  let _c = _ca[0];
  let _a = _ca[1];

  if (path_name !== 'upload/index') {
    if (_tree[path_name] === undefined) {
      return false;
    }
    let _pn = _tree[path_name];
    if (!_pn['allowed'].includes(`${_c}/*`) && !_pn['allowed'].includes(action_name)) {
      return false;
    }
  }
  _url = `index.php?c=${_c}&a=${_a}`;
  if (_request_mothod === 'GET') {
    return axios.get(_url, {params: params}).then(res => res.data)
  }
  if (_request_mothod === 'POST') {
    return axios.post(_url, params).then(res => res.data)
  }
}
// 输出请求树
export const tree = () => {
  return _tree;
}
